package vista;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.List;

import javax.swing.ComboBoxModel;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JSeparator;
import javax.swing.JTextField;
import javax.swing.JToggleButton;
import javax.swing.WindowConstants;
import javax.swing.SwingUtilities;

import controlador.ControladorAC;
import dto.RecetaDTO;

/**
 * This code was edited or generated using CloudGarden's Jigloo SWT/Swing GUI
 * Builder, which is free for non-commercial use. If Jigloo is being used
 * commercially (ie, by a corporation, company or business for any purpose
 * whatever) then you should purchase a license for each developer using Jigloo.
 * Please visit www.cloudgarden.com for details. Use of Jigloo implies
 * acceptance of these licensing terms. A COMMERCIAL LICENSE HAS NOT BEEN
 * PURCHASED FOR THIS MACHINE, SO JIGLOO OR THIS CODE CANNOT BE USED LEGALLY FOR
 * ANY CORPORATE OR COMMERCIAL PURPOSE.
 */
public class AltaProducto extends javax.swing.JFrame {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	{
		// Set Look & Feel
		try {
			javax.swing.UIManager.setLookAndFeel(javax.swing.UIManager
					.getSystemLookAndFeelClassName());
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	private JLabel LAltaPlato;
	private JComboBox<String> cTipo;
	private JTextField tNombre;
	private JLabel lReceta;
	private JComboBox<String> cRecetas;
	private JLabel lPrecio;
	private JTextField cPrecio;
	private JLabel lCaducidad;
	private JComboBox<String> cCaducidad;
	private JLabel lNombre;
	private JLabel eTipo;
	private JSeparator jSeparator1;
	private JToggleButton bCancelar;
	private JToggleButton bGuardar;

	/**
	 * Auto-generated main method to display this JFrame
	 */
	public static void main(String[] args) {
		SwingUtilities.invokeLater(new Runnable() {
			public void run() {
				AltaProducto inst = new AltaProducto();
				inst.setLocationRelativeTo(null);
				inst.setVisible(true);
			}
		});
	}

	public AltaProducto() {
		super();
		initGUI();
	}

	@SuppressWarnings({ "unchecked", "rawtypes" })
	private void initGUI() {
		try {
			setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
			getContentPane().setLayout(null);
			{
				LAltaPlato = new JLabel();
				getContentPane().add(LAltaPlato, "Center");
				LAltaPlato.setText("Producto");
				LAltaPlato.setFont(new java.awt.Font("Segoe UI", 1, 18));
				LAltaPlato.setBounds(12, 12, 286, 26);
			}
			{
				bGuardar = new JToggleButton();
				getContentPane().add(bGuardar);
				bGuardar.setText("Guardar");
				bGuardar.setBounds(265, 228, 105, 23);
				bGuardar.addActionListener(new ActionListener() {
					public void actionPerformed(ActionEvent evt) {
						// veo el tipo de producto y llamo a su constructor
						if (cTipo.getSelectedItem().toString() == "Elaborado a venta") {
							ControladorAC.getInstancia().altaProductoEV(
									tNombre.getText(),
									cCaducidad.getSelectedItem().toString(),
									Integer.parseInt(cPrecio.getText()));
						}
						if (cTipo.getSelectedItem().toString() == "Elaborado a no venta") {
							ControladorAC.getInstancia().altaProductoENV(
									tNombre.getText(),
									cCaducidad.getSelectedItem().toString(),
									Integer.parseInt(cPrecio.getText()));
						}
						if (cTipo.getSelectedItem().toString() == "Compra a venta") {
							ControladorAC.getInstancia().altaProductoCV(
									tNombre.getText(),
									cCaducidad.getSelectedItem().toString(),
									Integer.parseInt(cPrecio.getText()));
						}
						if (cTipo.getSelectedItem().toString() == "Compra a no venta") {
							ControladorAC.getInstancia().altaProductoCNV(
									tNombre.getText(),
									cCaducidad.getSelectedItem().toString(),
									Integer.parseInt(cPrecio.getText()));
						}
					}
				});
			}
			{
				bCancelar = new JToggleButton();
				getContentPane().add(bCancelar);
				bCancelar.setText("Cancelar");
				bCancelar.setBounds(150, 228, 105, 23);
			}
			{
				jSeparator1 = new JSeparator();
				getContentPane().add(jSeparator1);
				jSeparator1.setBounds(-24, 218, 505, 4);
			}
			{
				ComboBoxModel cTipoModel = new DefaultComboBoxModel(
						new String[] { "Elaborado a venta",
								"Elaborado a no venta", "Compra a venta",
								"Compra a no venta" });
				cTipo = new JComboBox();
				getContentPane().add(cTipo);
				cTipo.setModel(cTipoModel);
				cTipo.setBounds(105, 122, 267, 23);
			}
			{
				eTipo = new JLabel();
				getContentPane().add(eTipo);
				eTipo.setText("Tipo de producto:");
				eTipo.setBounds(10, 126, 85, 14);
			}
			{
				tNombre = new JTextField();
				getContentPane().add(tNombre);
				tNombre.setBounds(105, 44, 267, 20);
			}
			{
				lNombre = new JLabel();
				getContentPane().add(lNombre);
				lNombre.setText("Nombre:");
				lNombre.setBounds(10, 47, 85, 15);
			}
			{
				ComboBoxModel cCaducidadModel = new DefaultComboBoxModel(
						new String[] { "Alta", "Media", "Baja" });
				cCaducidad = new JComboBox();
				getContentPane().add(cCaducidad);
				cCaducidad.setModel(cCaducidadModel);
				cCaducidad.setBounds(105, 70, 267, 20);
			}
			{
				lCaducidad = new JLabel();
				getContentPane().add(lCaducidad);
				lCaducidad.setText("Caducidad:");
				lCaducidad.setBounds(10, 73, 91, 14);
			}
			{
				cPrecio = new JTextField();
				getContentPane().add(cPrecio);
				cPrecio.setBounds(105, 96, 267, 20);
			}
			{
				lPrecio = new JLabel();
				getContentPane().add(lPrecio);
				lPrecio.setText("Precio:");
				lPrecio.setBounds(10, 99, 33, 14);
			}
			{
				// Cargo todas las recetas en este combo.
				cRecetas = new JComboBox<String>();
				getContentPane().add(cRecetas);
				List<RecetaDTO> listaReceta = ControladorAC.getInstancia()
						.listarRecetas();
				for (RecetaDTO c : listaReceta) {
					cRecetas.addItem(c.getNombre());
				}
				cRecetas.setBounds(105, 151, 266, 20);

			}
			{
				lReceta = new JLabel();
				getContentPane().add(lReceta);
				lReceta.setText("Recetas:");
				lReceta.setBounds(10, 154, 43, 14);
			}
			pack();
			setSize(400, 300);
		} catch (Exception e) {
			// add your error handling code here
			e.printStackTrace();
		}
	}

}
